﻿using System;
using System.Linq;
using Acamps.Framework.BancoDados;
using Acamps.Framework.SessionFactory;

namespace Acamps.Framework.NegocioRegras
{
    public class FuncaoNegocio
    {
        private AcessoDados _acessoDados;
        private String _conectionString;

        internal FuncaoNegocio(string conexao)
        {
            _conectionString = conexao;
            _acessoDados = new AcessoDados(conexao);
        }

        public IQueryable<Funcao> Listar()
        {
            return _acessoDados.Entidade.Funcaos;
        }

        public FuncaoEvento SalvarFuncaoEvento(FuncaoEvento funcaoEvento)
        {
            try
            {
                funcaoEvento.Id = Guid.NewGuid();
                _acessoDados.Entidade.AddToFuncaoEventoes(funcaoEvento);
                _acessoDados.Entidade.SaveChanges();
                return funcaoEvento;
            }
            catch (Exception ex)
            {
                throw new Exception("Problema ao salvar o Função. Erro: " + ex.Message); 
            }
        }

        public IQueryable<FuncaoEvento> ListarFuncaoEvento(Guid idEvento)
        {
            return _acessoDados.Entidade.FuncaoEventoes.Where(x => x.IdEvento == idEvento);
        }
    }
}
